package _09带分数;

import java.util.*;

public class _09带分数2 {
     static int ans;
    private static int N;
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        N=sc.nextInt();
        int[] arr={1,2,3,4,5,6,7,8,9};
        f(arr,0);
        System.out.println(ans);
    }

    private static void f(int[] arr, int k) {
        if(k==9){//全部确认
            check(arr);
            return;
        }
        //选定第k位
        for (int i = k; i <arr.length ; i++) {
            //将第i位和第k位交换
            int t=arr[i];
            arr[i]=arr[k];
            arr[k]=t;

            //移交下一层去确认k+1位
            f(arr,k+1);

            //回溯(换回来)
            t=arr[i];
            arr[i]=arr[k];
            arr[k]=t;

        }
    }



    //枚举加号和除号的位置
    private static void check(int[] arr){
        //+前面的字符数最多是7
        for (int i = 0; i <=7 ; i++) {
            int num1=toInt(arr,0,i);//+前面的一段整数
            if(num1>=N)continue;//如果+前面的一段整数已经大于N  就没必要继续验算了
        //  /前面的字符数
            for (int j = 0; j <=8-i; j++) {
                int num2 = toInt(arr, i, j);
                int num3 = toInt(arr, i + j, 9 - i - j);
                if (num2 % num3 == 0 && num1 + num2 / num3 == N) {
                    ans++;
                }
            }
        }
    }
    private static int toInt(int[] arr,int pos,int length){
        int t=1;
        int ans=0;
        for (int i = pos+length-1; i >=pos ; i--) {
            ans+=arr[i]*t;//这两步是把数组中的一组数字转换为整数
            t*=10;//t相当于进位
        }
        return ans;
    }

    /*    private static void print(int[] arr){
        for (int i = 0; i <arr.length ; i++) {
            System.out.println(arr[i]);
        }
        System.out.println();
    }*/
}
